It is known that a transmission system of the type to which the invention relates comprises a plurality of transmitters and receivers connected with one another by a physical channel. In such systems, if the data rate of exchanged information is to be increased, there are essentially two types of limitations: first, the transmission capacity of the physical channel, and second, the processing speed of the interface circuits of the transmitters and receivers.
The usual transmission channels use twisted pairs, coaxial cables, or fiber optic connections. The highest transmission capacity is obtained at present by using fiber optics, which permit data rates on the order of one gigabit per second. These performances surpass those of present interface circuits, and it is particularly in the field of these circuits that progress is sought.
The speed of interface circuits depends first of all on the maximum operating frequency, allowed by the technology used. It is known that circuits using CMOS technology can operate at a frequency on the order of 20 MHz, circuits using ECL technology at a frequency on the order of 200 MHz, and circuits using current gallium arsenide technology at a frequency on the order of 700 MHz. These operating frequencies thus impose a primary limitation on conceivable data rates.
The data rate performance of a transmission system, however, does not depend only on the operating frequency of the circuits. The rate of useful information, and the maximum transmission range, increase when the signal transmitted is "self-clocking" (that is, if a clock signal can be extracted from it that has a predetermined phase relationship with the signal received). This property makes it unnecessary to transmit the information and the clock signal in two separate channels, with the associated limitations in terms of the difficulty of controlling the phase shift between the two channels. To make it possible to extract the clock signal, the useful data are encoded prior to being transmitted, such that the frequency of the transitions in the encoded signal remains above the operating limit of the clock recovery circuit (which may be a filter or a phase locked loop). The code used, known as a modulation code, introduces redundancy, so that the rate of encoded data is greater than the rate of useful data, the difference depending on the coding rate. Thus for a given technology, the maximum rate of useful data will depend on the modulation code used. Redundancy, the necessity of which is apparent here, also enables taking into account other constraints which are imposed on the code in order to facilitate its use and will be described in due course.
Finally, if the transcoding circuits operate in parallel on words of M bits, rather than serially on the bits, the same technology makes it possible to attain a data rate that is M times higher for this function. The modulation code is then known as a group code. Since data processing systems typically process data comprising a number of bits that is a power of 2, the group codes are designed for values of M powers of 2. The Manchester and Miller codes are classic examples of serial codes, the coding rate of which is 0.5 (2 code bits for 1 data bit). The associated transcoding circuits operate at a clock frequency of twice the rate of useful binary data. On the other hand, for the coding process known as 8B/10B, which encodes useful data words of 8 parallel bits into code words of 10 parallel bits transmitted serially, parallel transcoding circuits operate at a clock frequency equal to one-eighth of the useful data rate. The only circuits that perform parallel-to-serial and serial-to-parallel conversions use a clock frequency equal to 1.25 times the useful data rate, since the coding rate is 0.8.
Another important parameter affecting serial transmission performance is the range of variation of the time intervals separating two successive transitions of the signal transmitted. The maximum value of this time interval must in fact be limited to allow the extraction of the clock signal based on the only transitions of the signal received. Moreover, the range of variation, which is defined relative to the clock period T of the transmitter terminal circuit, determines the frequency spectrum of the signals transmitted. Consequently this parameter dictates the performance of the terminal circuits of the receivers, such as optoelectronic transducer, amplifier, and clock recovery circuits. For example, in the case where the coding is of the parallel type, the bits of one code word are generally transmitted serially with a modulation of the NRZ (non-return-to-zero) type. Thus the variations in the time interval between two successive transitions are directly a function of the code words used, that is, of the successions of logical zeroes or logical ones that appear in a code word. The code words must accordingly be selected taking into account the time intervals between two transitions that they generate.
Supplementary to the frequency band width constraints mentioned above, the following considerations must also be taken into account. In a baseband transmission channel where the processing of the signal consists in its comparison to a level threshold, as is generally the case, the information transmitted comprises the number and position of transitions of the coded signal relative to the clock signal with which it is associated. Phase distortions, which affect this relative position, can accordingly be sources of error.
The signal transmitted undergoes both a distortion that is random in character, due to noise, and a systematic distortion associated with the bandwidth of the channel. At the very high data rates of interest here, the bandwidth of the channel must be very greatly extended towards high frequencies. The low-frequency end is limited, so as to reduce noise and to facilitate realizing the transducers. It is accordingly important that the encoded signal does not suffer from this limitation. For this purpose, very low-frequency components must be removed from its spectrum, and the encoded signal must in particular have a constant mean value. When an optical channel using a laser diode emitter and/or a receiver including an automatic gain control is involved, the optical power emitted and the level of the signal received are often controlled by automatic control devices which measure the mean value of the encoded signal and keep it constant. These devices do not function correctly unless the modulation method used delivers an encoded signal having a mean value that does not depend on the data to be encoded. Codes having this property are known as DC balanced codes.
More precisely, for a modulation code to be DC balanced, the integral over time of a transmitted signal must be limited, no matter what kind of message is transmitted or how long it is. To measure this property of the code, the "charge" of one word or one message must be defined. In the case of an NRZ modulation, the charge is defined in the following manner: The coefficients +1 and -1, respectively, are assigned to the binary elements 1 and 0. The charge is then defined as the algebraic sum of these coefficients for all the bits of the word or message, or as the difference between the number of ones and the number of zeroes comprising the word or message. The charge must remain between two finite limits.
The useful data are transmitted in the form of code words that are concatenated and embodied as frames. The network protocol generally adds supplementary code words to the end of the frame, comprising a "key". This key makes it possible to detect the most frequent transmission errors when the frame does not exceed a certain length. Decoding, error detection and frame utilization require that the receiver correctly locate the boundaries of the words and of the frames. To do this, the transmitter must mark the stream of useful data with indicators, also known as flags, which are required for synchronization of the receiver. Examples of these flags are the token that grants the station the right of access to the channel, and frame delimiters; the flag at the beginning of the frame synchronizes the word clock of the receiver. In all the phase situations of its own word clock relative to the signal received, the receiver must therefore distinguish the data from the flags, and it must also distinguish among the flags. Very generally, error detection applies to the data transmitted, not to the flags; since the flags are managed locally by the channel, the network monitoring perceives only indirectly those anomalies that affect them: at the end of a delay (disappearance of the token) or of a complex logic operation (loft of a frame, duplication of the token). This delay in detection is deleterious to the quality of service, especially if the network is used for real-time applications. In the ring type of networks, where the information is transmitted through a succession of point-to-point links, each station must regenerate the signal received and then transmit it to the next station. Each frame travels through the entire loop and returns to its origin for verification; the probability of error relating to one frame increases with the number of stations in the loop. In this kind of arrangement, it is therefore desirable for the most frequent faults (simple errors, inversion of one bit) to be detected immediately and indicated by the receiver, even when they affect a flag.
Some of the problems addressed above are also addressed in U.S. Pat. No. 4,486,739 of Peter A. Franaszek and Albert X. Widmer, issued Dec. 4, 1984, and in an article entitled "A DC balanced, partitioned-block, 8B/10B transmission code", published in the IBM Journal of Research and Development, Vol. 27, No. 5, September 1983, pages 440-451. However, the codes described in this article do not offer the necessary guarantees for detecting the flags, especially when the word clock of the receiver is no longer, or not yet, synchronized with the signal received. A single flag is defined as having a Hamming distance of at least 2 with respect to every code word. It has a distance of less than 2 with respect to the encoded sequences connecting the segments of the concatenated words. Knowing that the flag is used to synchronize the word clock of the receiver, the inadequacy of this feature will be appreciated: A simple error is enough to change data to a flag, or a flag to a data, without the decoder being able to detect the error.